/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: kano
 * Date: 2025-02-15
 * Time: 11:37
 */

class Date
{
    public int _year;//不赋值默认填充0
    public int _month;
    public int _day;
    public void setDate(Date this,int year,int month,int day)//C++中this指针不能显示写,Java可以但是是this引用
    {
        _year = year;
        _month = month;
        _day = day;
    }
    public void PrintDate()
    {
        System.out.println(this._year+"-"+this._month+"-"+_day);
    }

    // 构造方法：
// 名字与类名相同，没有返回值类型，设置为void也不行
// 一般情况下使用public修饰
// 在创建对象时由编译器自动调用，并且在对象的生命周期内只调用一次

    //无参:  如果用户没有显式定义，编译器会生成一份默认的构造方法，生成的默认构造方法一定是无参的
    //一旦用户定义，编译器则不再生成。对于默认构造是存在默认'0'值的
    public Date()
    {
        //此处可以在无参构造方法中通过this调用带有三个参数的构造方法
       // _year = _month = _day = 0;
      //  this(0,0,0); //要想使用this调用三个参数构造,必须是该构造的第一条语句!!!
        System.out.println("Date()");
    } //1.this可以访问类中成员  2.this可以调用构造 this代表调用对象的引用

    //有参构造
    private Date(int year,int month,int day) //设置为private只能在类内使用
    {
//         this();//不能构成交换
        _year = year;
        _month = month;
        _day = day;
        System.out.println("Date(int year,int month,int day)");
    }


}

//main方法所在的类一般要使用public修饰 鼠标放在其他位置只会执行public class的main
public class Test {
    public static void main(String[] args) {
        System.out.println("hello Test");
        Dog dog = new Dog(); //Java中通过new实例化对象
        dog.color = "yellow"; //也是用.访问成员
        dog.name = "小可爱";
        dog.wag();

        //this引用类型为调用对象的引用
//        Date d1 ;
        Date d1 = new Date();//需要进行初始化
//        Date d2 = new Date(2022,3,4);
//        Date d3 = new Date(2024,1,9);
        d1.PrintDate();
    }
}

class Dog
{   //鼠标放到Dog的main 只会执行Dog类的main
    public static void main(String[] args) {
        System.out.println("hello Dog");
    }
    public String name;
    public String color;
    String age; //此时是默认权限default
    public void barks()
    {
        System.out.println("旺旺!");
    }

    public void wag()
    {
        System.out.println("摇尾巴");
    }
}


// public修饰的类必须要和文件名相同
//public class student
//{
//
//}
